home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / basic / pbtool.exe / PBLIB.BAS < prev    next >
BASIC Source File  |  1991-11-18  |  3KB  |  111 lines

  1. '----------------------------------------------------------
  2. '  PROGRAM: PBLIB.BAS          PROGRAMMER: A. KELLETT
  3. '  DATE-WRITTEN: 10/18/91
  4. '  USING POWER BASIC V2.10A
  5. '
  6. '  THESE ARE SMALL, USEFUL ROUTINES YOU CAN PLUG INTO YOUR
  7. '  OWN CODE.  SHOULD RUN WITH TURBO OR POWERBASIC.
  8. '  SPECIAL THANKS TO MIKE P. FOR SUGGESTIONS...
  9. '  VERSION: 0.20    LAST UPDATED: 11/18/91
  10. '----------------------------------------------------------
  11. '-------------- DEMO CODE FOLLOWING -----------------------
  12.    CLS
  13.    LOCATE 5,5:PRINT "PRESS ANY KEY TO CONTINUE [NO PROMPT]"
  14.    CALL PRESSANYKEY
  15.    CLS
  16.    CALL PRESSANYKEY2(5,5,"PRESS IT, DUDE")
  17.    CLS
  18.    LOCATE 5,5:PRINT "PRESS THE B KEY [NO PROMPT]"
  19.    CALL PRESSAKEY("B")
  20.    CLS
  21.    CALL PRESSAKEY2(5,5,"X","PRESS THE X KEY TO CONTINUE")
  22.    CLS
  23.    CALL BLINKMSG(5,10,.6,.3,"WAITING FOR A KEYSTROKE")
  24.    CLS
  25.    LOCATE 10,20:PRINT "PAUSE FOR 5 SEC. STATION IDENTIFICATION..."
  26.    CALL WAITAWHILE(5)
  27.    CLS
  28.    CALL CENTER("Here is a fully centered message.",12)
  29.  
  30. END
  31. '
  32. ' PAUSES UNTIL A KEY IS PRESSED, NO MESSAGES ETC.
  33. '----------------------------------------------------------
  34. SUB PRESSANYKEY
  35.    KY$ = ""
  36.    DO WHILE KY$ = ""
  37.       KY$ = INKEY$
  38.    WEND
  39. END SUB
  40. '
  41. ' CALL PRESSANYKEY2(1, 15, "STRIKE A KEY, DUDE")  -> PAUSES W/MESSAGE
  42. '----------------------------------------------------------
  43. SUB PRESSANYKEY2(ROW%, COLUMN%, MSG$)
  44.    KY$ = ""
  45.    LOCATE ROW%, COLUMN%:PRINT MSG$
  46.    DO WHILE KY$ = ""
  47.       KY$ = INKEY$
  48.    WEND
  49. END SUB
  50. '
  51. '  CALL PRESSAKEY("A")  or  CALL PRESSAKEY(CHR$(65))
  52. '----------------------------------------------------------
  53. SUB PRESSAKEY (KEYNEEDED$)
  54.    KY$ = ""
  55.    DO WHILE KY$ <> KEYNEEDED$
  56.       KY$ = INKEY$
  57.    WEND
  58. END SUB
  59. '
  60. '  CALL PRESSAKEY2(1, 15, "A", "PRESS THE A KEY")
  61. '----------------------------------------------------------
  62. SUB PRESSAKEY2 (ROW%, COLUMN%, KEYNEEDED$, MSG$)
  63.    LOCATE ROW%, COLUMN%:PRINT MSG$
  64.    KY$ = ""
  65.    DO WHILE KY$ <> KEYNEEDED$
  66.       KY$ = INKEY$
  67.    WEND
  68. END SUB
  69. '
  70. ' CALL BLINKMSG(1, 15, .8, .4, "HELLO ALL YOU MOMS & DADS)
  71. '----------------------------------------------------------
  72. SUB BLINKMSG (ROW%, COLUMN%, TIME1, TIME2, MSG$)
  73.    ' NOTE: WHEN THE USER PRESSES A KEY, IT WILL STILL CYCLE
  74.    '  THRU A DISPLAY/BLANK MODE WITH PAUSES <<BEFORE>> IT
  75.    '  KICKS OUT OF THE LOOP.  THIS IS ESPECIALLY NOTICEABLE
  76.    '  IF EITHER DELAY (TIME1 OR TIME2) IS VERY LARGE, > 1.0.
  77.    LOCAL XLEN%
  78.    XLEN% = LEN(MSG$)
  79.    KY$ = ""
  80.    DO WHILE KY$ = ""
  81.       KY$ = INKEY$
  82.       LOCATE ROW%, COLUMN%:PRINT MSG$;:
  83.       DELAY TIME1
  84.       LOCATE ROW%, COLUMN%:PRINT STRING$(XLEN%, " ")
  85.       DELAY TIME2
  86.    WEND
  87. END SUB
  88. '
  89. '  CALL WAITAWHILE(10)     -->** PAUSES 10 SECONDS **
  90. '----------------------------------------------------------
  91. SUB WAITAWHILE (WAITTIME%)
  92.    PAUSE = TIMER + WAITTIME%
  93.    WHILE TIMER < PAUSE
  94.       '** DO NOTHING **
  95.    WEND
  96. END SUB
  97. '
  98. '  CALL CENTER("Text to display", linetodisplayon%)
  99. '----------------------------------------------------------
  100. SUB CENTER  (TEXT$, DISPLAYLINE%)
  101.    IF LEN(TEXT$) < 80 THEN
  102.       X% = LEN(TEXT$) / 2
  103.       X% = 40 - X%
  104.       LOCATE DISPLAYLINE%, X%:PRINT TEXT$;
  105.    END IF
  106.  
  107.  
  108. END SUB
  109.  
  110.  
  111.